【スニペット】Obsidian 最初の未完了タスク選択
2024/10/24
エディタ内で未完了タスクを探し、カーソルをその行末に移動する関数
code:js
// エディタ内で未完了タスクを探し、カーソルをその行末に移動する関数
function moveToFirstIncompleteTask() {
const editor = this.app.workspace.activeLeaf.view.sourceMode.cmEditor;
const doc = editor.getDoc();
const lines = doc.lineCount(); // ドキュメント内の行数を取得
// 全行をループして未完了タスクを探す
for (let i = 0; i < lines; i++) {
const lineText = doc.getLine(i); // 現在の行のテキストを取得
// 未完了タスクを判定(- で始まる行を探す)
if (lineText.startsWith('- ')) {
// タスクが見つかった場合、その行末にカーソルを移動
const lineEnd = lineText.length; // 行の末尾の位置
doc.setCursor({ line: i, ch: lineEnd }); // カーソルを行末に設定
return; // 最初の未完了タスクを見つけたら終了
}
}
// 未完了タスクが見つからなかった場合の処理(必要であれば)
console.log("未完了タスクが見つかりませんでした");
}
// コードを実行
moveToFirstIncompleteTask();